#include "pala.h"
#include "util.h"

Pala::Pala(float ancho, float largo, float grosor) :
                                        _anguloMinimo(0),
                                        _anguloMaximo(120),
                                        _ancho(ancho), 
                                        _largo(largo), 
                                        _grosor(grosor), 
                                        _angulo(0) {

   inicializar();
}

Pala::~Pala() {}

void Pala::dibujarTabla() const {
   glPushMatrix();
   glTranslatef(0.0, 0.0, -_grosor/2.0);
   glScalef(_ancho, _largo, _grosor);
   glutSolidCube(1.0);
   glPopMatrix();
}

void Pala::dibujarLateral(float x) const {
   glPushMatrix();
   float altoZ = 0.75*_largo;
   float longitudY = 0.6*_largo;

   glTranslatef(x, ((_largo-longitudY)/2.0) - _grosor, altoZ/2.0); 
   glScalef(_grosor, longitudY, altoZ);
   glutSolidCube(1.0);
   glPopMatrix();
}

void Pala::ejecucion() const {
   glPushMatrix();
   glTranslatef(0, (_largo/2.0) - _grosor, _largo/2.0);
   glRotatef(90.0, 1.0, 0.0, 0.0);
   dibujarTabla();
   glPopMatrix();

   dibujarTabla();

   dibujarLateral((_ancho - _grosor)/2.0);
   dibujarLateral((_grosor - _ancho)/2.0);
}

void Pala::dibujar() const {
    
    glPushMatrix();

    glTranslatef(0, -_largo/2.0, 0);
    glRotatef( - _angulo, 1, 0, 0);
    glTranslatef(_grosor, _largo/2.0, _grosor-0.01);

    DisplayList::dibujar();

    glPopMatrix();
}
